package com.ruoyi.law.domain.dto;

import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * <p>
 * 律师订单
 * </p>
 *
 * @author code
 * @since 2022-11-27
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "LawOrder对象", description = "律师订单")
public class LawOrderDTO extends BaseEntity {

    @ApiModelProperty(value = "订单ID")
    private Long id;

    @ApiModelProperty(value = "订单号")
    private String num;

    @ApiModelProperty(value = "用户名称(下单人)")
    private String userName;

    @ApiModelProperty(value = "用户id(下单人)")
    private Long userId;

    @ApiModelProperty(value = "用户头像(下单人头像)")
    private String avatar;

    @ApiModelProperty(value = "vipId", required = true)
    private Long vipId;

    @ApiModelProperty(value = "vip类型", required = true)
    private String vipType;

    @ApiModelProperty(value = "咨询或服务id", required = true)
    private Long consultingId;

    @ApiModelProperty(value = "咨询或服务名称")
    private String consultingName;

    @ApiModelProperty(value = "律师id(team_id)")
    private Long lawyerId;

    @ApiModelProperty(value = "律师名字")
    private String lawyerName;

    @ApiModelProperty(value = "律师头像")
    private String lawyerPic;

    @ApiModelProperty(value = "律师电话")
    private String lawyerPhone;

    @ApiModelProperty(value = "律师职位")
    private String lawyerPost;

    @NotNull(message = "订单类型不能为空")
    @ApiModelProperty(value = "订单类型（1.vip订单 2.咨询订单 3.服务订单）(字典:law_order_type)", required = true)
    private String orderType;

    @ApiModelProperty(value = "订单状态，0:未支付，1:已支付(进行中),2:已完成(字典:law_order_state)")
    private String state;

    @NotNull(message = "金额不能为空")
    @ApiModelProperty(value = "金额", required = true)
    private BigDecimal price;

    @ApiModelProperty(value = "订单添加时间")
    private String addTime;

    @ApiModelProperty(value = "服务结束时间")
    private String endTime;

    @ApiModelProperty(value = "订单时长", required = true)
    private String orderTime;

    @ApiModelProperty(value = "支付方式，0:垫资支付，1:线下支付，2:微信支付(字典:law_pay_type)")
    private String way;

    @ApiModelProperty(value = "订单律师状态，0:已派单，1:已立案，2:一审阶段，3:二审阶段，4:执行中，5:再审申诉中，6:已结案(字典:law_order_progress)")
    private String lawyerState;

    @ApiModelProperty(value = "律师提成比例")
    private Integer lawyerPercent;

    @ApiModelProperty(value = "推荐人id")
    private Long invitationId;

    @ApiModelProperty(value = "推荐人名称")
    private String invitationName;

    @ApiModelProperty(value = "下单人联系电话")
    private String phone;

    @ApiModelProperty(value = "补充材料")
    private String supplement;

    @ApiModelProperty(value = "附件(多个附件用逗号隔开)")
    private String file;

    @ApiModelProperty(value = "填写的手机号")
    private String fillInPhone;

}
